// const alphabet = {
//     a: [4, `/${String.fromCharCode(92)}`, "@", `/-${String.fromCharCode(92)}`, "^", "aye", "(L", "Д"],
//     b: ["13", "8", "13", "|3", "ß", "!3", "(3", "/3", ")3", "|-]", "j3", "6"],
//     c: ["[","¢", "{", "<", "(", "©"],
//     d: [")", "|)", "(|", "[)", "I>", "|>", "?", "T)", "I7", "cl", "|}", ">", "|]"],
//     e: ["3", "&", "£", "€", "ë", "[-", "|=-"],
//     f: ["|=", "ƒ", "|#", "ph", "/=", "v"],
//     g: ["&", "6", "(_+", "9", "C-", "gee", "(?,", "[", "{", "<-", "(."],
//     h: ["#", "/-/", "[-]", "]-[", ")-(", "(-)", ":-:", "|~|", "|-|", "]~[", "}{", "!-!", "1-1", "\\-/", "I+I", "/-\\"],
//     i: ["1", "[]", "|", "!", "eye", "3y3", "]["],
//     j: [",_|", "_|", "._|", "._]", "_]", ",_]", "]", ";1"],
//     k: [">|", "|<", "/<", "1<", "|c", "|(", "|{"],
//     l: ["1", "£", "7", "|_", "|"],
//     m: ["/\\/\\", "/V\\", "JVI", "[V]", "[]V[]", "|\\/|", "^^", "<\\/>", "{V}", "(v)", "(V)", "|V|", "nn", "IVI", "|\\|\\", "]\\/[", "1^1", "ITI", "JTI"],
//     n: ["^/", "|\\|", "/\\/", "[\\]", "<\\>", "{\\}", "|V", "/V", "И", "^", "ท"],
//     o: ["0", "Q", "()", "oh", "[]", "p", "<>", "Ø"],
//     p: ["|*", "|o", "|º", "?", "|^", "|>", "|\"", "9", "[]D", "|°", "|7"],
//     q: ["(_,)", "9", "()_", "2", "0_", "<|", "&"],
//     r: ["I2", "|`", "|~", "|?", "/2", "|^", "lz", "|9", "2", "12", "®", "[z", "Я", ".-", "|2", "|-"],
//     s: ["5", "$", "z", "§", "ehs", "es", "2"],
//     t: ["7", "+", "-|-", "']['", "†", "\"|\"", "~|~"],
//     u: ["(_)", "|_|", "v", "L|", "µ", "บ"],
//     v: ["\\/", "|/", "\\|"],
//     w: ["\/\/", "VV", "\\N", "'//", "\\'", "\\^/", "(n)", "\\V/", "\\X/", "\\|/", "\\_|_/", "\\_:_/", "Ш", "Щ", "uu", "2u", "\\\\//\\\\//", "พ", "v²"],
//     x: ["><", "Ж", "}{", "ecks", "×", "?", ")(", "]["],
//     y: ["j", "`/", "Ч", "7", "\\|/", "¥", "\\//"],
//     z: ["2", "7_", "-/_", "%", ">_", "s", "~/_", "-\\_", "-|_"]    
// }


const hacker_alphabet = {
    a: "4",
    b: "13",
    c: "[",
    d: ")",
    e: "3",
    f: "|=",
    g: "&",
    h: "#",
    i: "1",
    j: ",_|",
    k: ">|",
    l: "1",
    m: "/\\/\\",
    n: "^/",
    o: "0",
    p: "|*",
    q: "(_,)",
    r: "I2",
    s: "5",
    t: "7",
    u: "(_)",
    v: "\\/",
    w: "\\/\\/",
    x: "><",
    y: "j",
    z: "2"
}


function hackerLanguage(text){
    let newText = "";
    let regex = /^[0-9!¡@#\$%\^\&*\)\(+=._-\s,:;]+$/;

    for(let character in text){
        let current_character = text[character].toLowerCase();
        
        if(regex.test(current_character)){
            newText += current_character;
        }
        else{
            newText += hacker_alphabet[current_character];
        }
    }
    return newText;
}

console.log(hackerLanguage("¡Hola, mundo!"));
